package com.x.compute.common.constant;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
import lombok.ToString;

/**
 * 字段值类型
 * @author xuxin
 */
@Getter
@ToString
public enum VarTypeEnum {
    /**
     * 字符串
     */
    STRING(1,""),
    /**
     * 数值
     */
    NUMBER(2,0),
    /**
     * 布尔
     */
    BOOLEAN(3,false),
    /**
     * 日期
     */
    DATE(4,"");

    VarTypeEnum(int type, Object defaultValue){
        this.type = type;
        this.defaultValue = defaultValue;
    }

    @EnumValue
    public final int type;

    public final Object defaultValue;

    /**
     * 根据类型获取枚举
     *
     * @param type 类型
     * @return
     */
    public static VarTypeEnum getEnumObject(Integer type) {
        for (VarTypeEnum typeEnum : VarTypeEnum.values()) {
            if (typeEnum.getType() == type) {
                return typeEnum;
            }
        }
        throw new IllegalArgumentException("illegal type");
    }

    public static String getDefaultValue(int type){
        for (VarTypeEnum typeEnum : VarTypeEnum.values()) {
            if (type == typeEnum.type){
                return typeEnum.defaultValue.toString();
            }
        }
        return null;
    }

}

